#ifndef _SEM_HPP_
#define _SEM_HPP_

#include <semaphore.h>

class Sem
{
public:
    Sem(int value)
    {
        sem_init(&_sem,0,value);
    }
    //PV操作：
    //P对信号量进行减减，代表提取资源
    //V对信号量进行加加，代表还资源
    void p()
    {
        sem_wait(&_sem);
    }
    void v()
    {
        sem_post(&_sem);
    }
    ~Sem()
    {
        sem_destroy(&_sem);
    }
    
private:
    sem_t _sem;
};

#endif